const axios = require('axios');

// 配置请求基础路径
const BASE_URL = 'http://localhost:3000';

// 模拟前端数据（驼峰命名）
const frontEndData = {
  orderId: '59',
  consigneeName: '胡图图',
  phoneNumber: '13999999999',
  detailAddress: '翻斗大街翻斗花园',
  deliveryTime: '2025-09-16 13:00-17:00',
  remarks: '',
  province: '',
  city: '',
  district: ''
};

// 模拟前端参数转换逻辑
const formatData = (data) => {
  return {
    order_id: data.orderId || '',
    consignee_name: data.consigneeName || '',
    phone_number: data.phoneNumber || '',
    province: '',  // 用户要求设置为空值
    city: '',      // 用户要求设置为空值
    district: '',  // 用户要求设置为空值
    detail_address: data.detailAddress || '',
    remarks: data.remarks || '',
    delivery_time: data.deliveryTime || ''
  };
};

// 测试函数 - 模拟前端请求
async function testFrontendRequest() {
  console.log('==================== 模拟前端请求测试 ====================');
  console.log('前端原始数据:', frontEndData);
  
  // 格式化数据（模拟前端api.js中的转换）
  const formattedData = formatData(frontEndData);
  console.log('格式化后的数据:', formattedData);
  
  try {
      // 测试1：使用前端api.js中的路径 '/api/order_address/' (带斜杠)
      console.log('测试1: 使用路径 "/api/order_address/" (带斜杠)');
      const response1 = await axios.post(`${BASE_URL}/api/order_address/`, formattedData, {
        headers: {
          'Content-Type': 'application/json'
        }
      });
    console.log('测试1结果:', response1.data);
    
    // 测试2：使用测试脚本中的路径 '/api/order_address/' (带斜杠)
    console.log('\n测试2: 使用路径 "/api/order_address/" (带斜杠)');
    const response2 = await axios.post(`${BASE_URL}/api/order_address/`, formattedData, {
      headers: {
        'Content-Type': 'application/json'
      }
    });
    console.log('测试2结果:', response2.data);
    
    // 测试3：直接发送驼峰命名的数据（不转换）
    console.log('\n测试3: 直接发送驼峰命名的数据');
    const response3 = await axios.post(`${BASE_URL}/api/order_address`, frontEndData, {
      headers: {
        'Content-Type': 'application/json'
      }
    });
    console.log('测试3结果:', response3.data);
    
  } catch (error) {
    console.error('测试失败:', error.response?.data || error.message);
  }
}

// 运行测试
async function runTests() {
  try {
    await testFrontendRequest();
    console.log('\n==================== 测试完成 ====================');
  } catch (error) {
    console.error('整体测试失败:', error);
  }
}

// 执行测试
runTests();